package com.opengms.HydroModelsIntegration.Domain;

        import java.util.ArrayList;

public class InpData {


    //TITLE
    private ArrayList<String> TitleArrayList;
    public ArrayList<String> getTitleArrayList() {
        return TitleArrayList;
    }
    public void setTitleArrayList(ArrayList<String> titleArrayList) {
        TitleArrayList = titleArrayList;
    }

    //OPTIONS
    public class Option
    {
        private String flow_units;
        private String infiltration;
        private String flow_routing;
        private String link_offsets;
        private float min_slope;
        private String allow_ponding;
        private String skip_steady_state;


        private String ignore_rainfall;
        private String ignore_routing;
        private String start_date;
        private String start_time;
        private String report_start_date;
        private String report_start_time;
        private String end_date;
        private String end_time;
        private String sweep_start;
        private String sweep_end;
        private float dry_days;
        private String report_step;
        private String wet_step;
        private String dry_step;
        private String routing_step;
        private String inertial_damping;
        private String normal_flow_limited;
        private String force_main_equation;
        private float variable_step;
        private float lengthening_step;
        private float min_surfarea;
        private float max_trials;
        private float head_tolerance;
        private float sys_flow_tol;
        private float lat_flow_tol;

        public String getFlow_units() {
            return flow_units;
        }

        public void setFlow_units(String flow_units) {
            this.flow_units = flow_units;
        }

        public String getInfiltration() {
            return infiltration;
        }

        public void setInfiltration(String infiltration) {
            this.infiltration = infiltration;
        }

        public String getFlow_routing() {
            return flow_routing;
        }

        public void setFlow_routing(String flow_routing) {
            this.flow_routing = flow_routing;
        }

        public String getLink_offsets() {
            return link_offsets;
        }

        public void setLink_offsets(String link_offsets) {
            this.link_offsets = link_offsets;
        }

        public float getMin_slope() {
            return min_slope;
        }

        public void setMin_slope(float min_slope) {
            this.min_slope = min_slope;
        }

        public String getAllow_ponding() {
            return allow_ponding;
        }

        public void setAllow_ponding(String allow_ponding) {
            this.allow_ponding = allow_ponding;
        }

        public String getSkip_steady_state() {
            return skip_steady_state;
        }

        public void setSkip_steady_state(String skip_steady_state) {
            this.skip_steady_state = skip_steady_state;
        }

        public String getIgnore_rainfall() {
            return ignore_rainfall;
        }

        public void setIgnore_rainfall(String ignore_rainfall) {
            this.ignore_rainfall = ignore_rainfall;
        }

        public String getIgnore_routing() {
            return ignore_routing;
        }

        public void setIgnore_routing(String ignore_routing) {
            this.ignore_routing = ignore_routing;
        }

        public String getStart_date() {
            return start_date;
        }

        public void setStart_date(String start_date) {
            this.start_date = start_date;
        }

        public String getStart_time() {
            return start_time;
        }

        public void setStart_time(String start_time) {
            this.start_time = start_time;
        }

        public String getReport_start_date() {
            return report_start_date;
        }

        public void setReport_start_date(String report_start_date) {
            this.report_start_date = report_start_date;
        }

        public String getReport_start_time() {
            return report_start_time;
        }

        public void setReport_start_time(String report_start_time) {
            this.report_start_time = report_start_time;
        }

        public String getEnd_date() {
            return end_date;
        }

        public void setEnd_date(String end_date) {
            this.end_date = end_date;
        }

        public String getEnd_time() {
            return end_time;
        }

        public void setEnd_time(String end_time) {
            this.end_time = end_time;
        }

        public String getSweep_start() {
            return sweep_start;
        }

        public void setSweep_start(String sweep_start) {
            this.sweep_start = sweep_start;
        }

        public String getSweep_end() {
            return sweep_end;
        }

        public void setSweep_end(String sweep_end) {
            this.sweep_end = sweep_end;
        }

        public float getDry_days() {
            return dry_days;
        }

        public void setDry_days(float dry_days) {
            this.dry_days = dry_days;
        }

        public String getReport_step() {
            return report_step;
        }

        public void setReport_step(String report_step) {
            this.report_step = report_step;
        }

        public String getWet_step() {
            return wet_step;
        }

        public void setWet_step(String wet_step) {
            this.wet_step = wet_step;
        }

        public String getDry_step() {
            return dry_step;
        }

        public void setDry_step(String dry_step) {
            this.dry_step = dry_step;
        }

        public String getRouting_step() {
            return routing_step;
        }

        public void setRouting_step(String routing_step) {
            this.routing_step = routing_step;
        }

        public String getInertial_damping() {
            return inertial_damping;
        }

        public void setInertial_damping(String inertial_damping) {
            this.inertial_damping = inertial_damping;
        }

        public String getNormal_flow_limited() {
            return normal_flow_limited;
        }

        public void setNormal_flow_limited(String normal_flow_limited) {
            this.normal_flow_limited = normal_flow_limited;
        }

        public String getForce_main_equation() {
            return force_main_equation;
        }

        public void setForce_main_equation(String force_main_equation) {
            this.force_main_equation = force_main_equation;
        }

        public float getVariable_step() {
            return variable_step;
        }

        public void setVariable_step(float variable_step) {
            this.variable_step = variable_step;
        }

        public float getLengthening_step() {
            return lengthening_step;
        }

        public void setLengthening_step(float lengthening_step) {
            this.lengthening_step = lengthening_step;
        }

        public float getMin_surfarea() {
            return min_surfarea;
        }

        public void setMin_surfarea(float min_surfarea) {
            this.min_surfarea = min_surfarea;
        }

        public float getMax_trials() {
            return max_trials;
        }

        public void setMax_trials(float max_trials) {
            this.max_trials = max_trials;
        }

        public float getHead_tolerance() {
            return head_tolerance;
        }

        public void setHead_tolerance(float head_tolerance) {
            this.head_tolerance = head_tolerance;
        }

        public float getSys_flow_tol() {
            return sys_flow_tol;
        }

        public void setSys_flow_tol(float sys_flow_tol) {
            this.sys_flow_tol = sys_flow_tol;
        }

        public float getLat_flow_tol() {
            return lat_flow_tol;
        }

        public void setLat_flow_tol(float lat_flow_tol) {
            this.lat_flow_tol = lat_flow_tol;
        }
    }
    private Option option;
    public Option getOption() {
        return option;
    }
    public void setOption(Option option) {
        this.option = option;
    }


    //EVAPORATION
    public class Evaporation
    {
        private String selected_source;//从CONSTANT,TIMESERIES,FILE,MONTHLY,TEMPERATURE中选哪个
        private float constant;
        private String timeseries;
        private float[] file;
        private float[] monthly;
        private String temperature;
        private String recovery;
        private String dryonly;

        public String getSelected_source() {
            return selected_source;
        }

        public void setSelected_source(String selected_source) {
            this.selected_source = selected_source;
        }

        public float getConstant() {
            return constant;
        }

        public void setConstant(float constant) {
            this.constant = constant;
        }

        public String getTimeseries() {
            return timeseries;
        }

        public void setTimeseries(String timeseries) {
            this.timeseries = timeseries;
        }

        public float[] getFile() {
            return file;
        }

        public void setFile(float[] file) {
            this.file = file;
        }

        public float[] getMonthly() {
            return monthly;
        }

        public void setMonthly(float[] monthly) {
            this.monthly = monthly;
        }

        public String getTemperature() {
            return temperature;
        }

        public void setTemperature(String temperature) {
            this.temperature = temperature;
        }

        public String getRecovery() {
            return recovery;
        }

        public void setRecovery(String recovery) {
            this.recovery = recovery;
        }

        public String getDryonly() {
            return dryonly;
        }

        public void setDryonly(String dryonly) {
            this.dryonly = dryonly;
        }



    }
    private Evaporation evaporation;
    public Evaporation getEvaporation() {
        return evaporation;
    }
    public void setEvaporation(Evaporation evaporation) {
        this.evaporation = evaporation;
    }


    //RAINGAGES
    public class Raingage
    {
        public String getGage() {
            return gage;
        }

        public void setGage(String gage) {
            this.gage = gage;
        }

        public String getFormat() {
            return format;
        }

        public void setFormat(String format) {
            this.format = format;
        }

        public String getInterval() {
            return interval;
        }

        public void setInterval(String interval) {
            this.interval = interval;
        }

        public String getScf() {
            return scf;
        }

        public void setScf(String scf) {
            this.scf = scf;
        }

        public String getDatasource() {
            return datasource;
        }

        public void setDatasource(String datasource) {
            this.datasource = datasource;
        }

        public String getSeriesname() {
            return seriesname;
        }

        public void setSeriesname(String seriesname) {
            this.seriesname = seriesname;
        }

        public String getFilename() {
            return filename;
        }

        public void setFilename(String filename) {
            this.filename = filename;
        }

        public String getStationid() {
            return stationid;
        }

        public void setStationid(String stationid) {
            this.stationid = stationid;
        }

        public String getRainunits() {
            return rainunits;
        }

        public void setRainunits(String rainunits) {
            this.rainunits = rainunits;
        }


        public ArrayList<String> getDescription() {
            return description;
        }

        public void setDescription(ArrayList<String> description) {
            this.description = description;
        }

        private ArrayList<String> description;
        private String gage;
        private String format;
        private String interval;
        private String scf;
        private String datasource;
        private String seriesname;
        private String filename;
        private String stationid;
        private String rainunits;
    }
    private ArrayList<Raingage> raingageArrayList;
    public ArrayList<Raingage> getRaingageArrayList() {
        return raingageArrayList;
    }
    public void setRaingageArrayList(ArrayList<Raingage> raingageArrayList) {
        this.raingageArrayList = raingageArrayList;
    }


    //SUBCATCHMENTS
    public class Subcatchment
    {
        private ArrayList<String> description;
        private String subcatchment;
        private String raingage;
        private String outlet;
        private float area;
        private float imperv;
        private float width;
        private float slope;
        private float curblen;
        private String snowpack;

        public ArrayList<String> getDescription() {
            return description;
        }

        public void setDescription(ArrayList<String> description) {
            this.description = description;
        }
        public String getSubcatchment() {
            return subcatchment;
        }

        public void setSubcatchment(String subcatchment) {
            this.subcatchment = subcatchment;
        }

        public String getRaingage() {
            return raingage;
        }

        public void setRaingage(String raingage) {
            this.raingage = raingage;
        }

        public String getOutlet() {
            return outlet;
        }

        public void setOutlet(String outlet) {
            this.outlet = outlet;
        }

        public float getArea() {
            return area;
        }

        public void setArea(float area) {
            this.area = area;
        }

        public float getImperv() {
            return imperv;
        }

        public void setImperv(float imperv) {
            this.imperv = imperv;
        }

        public float getWidth() {
            return width;
        }

        public void setWidth(float width) {
            this.width = width;
        }

        public float getSlope() {
            return slope;
        }

        public void setSlope(float slope) {
            this.slope = slope;
        }

        public float getCurblen() {
            return curblen;
        }

        public void setCurblen(float curblen) {
            this.curblen = curblen;
        }

        public String getSnowpack() {
            return snowpack;
        }

        public void setSnowpack(String snowpack) {
            this.snowpack = snowpack;
        }


    }
    private ArrayList<Subcatchment> subcatchmentArrayList;
    public ArrayList<Subcatchment> getSubcatchmentArrayList() {
        return subcatchmentArrayList;
    }
    public void setSubcatchmentArrayList(ArrayList<Subcatchment> subcatchmentArrayList) {
        this.subcatchmentArrayList = subcatchmentArrayList;
    }


    //SUBAREAS
    public class Subarea
    {
        private String subcatchment;
        private float n_imperv;
        private float n_perv;
        private float s_imperv;
        private float s_perv;
        private float pctzero;
        private String routeto;
        private float pctrouted;
        public String getSubcatchment() {
            return subcatchment;
        }

        public void setSubcatchment(String subcatchment) {
            this.subcatchment = subcatchment;
        }

        public float getN_imperv() {
            return n_imperv;
        }

        public void setN_imperv(float n_imperv) {
            this.n_imperv = n_imperv;
        }

        public float getN_perv() {
            return n_perv;
        }

        public void setN_perv(float n_perv) {
            this.n_perv = n_perv;
        }

        public float getS_imperv() {
            return s_imperv;
        }

        public void setS_imperv(float s_imperv) {
            this.s_imperv = s_imperv;
        }

        public float getS_perv() {
            return s_perv;
        }

        public void setS_perv(float s_perv) {
            this.s_perv = s_perv;
        }

        public float getPctzero() {
            return pctzero;
        }

        public void setPctzero(float pctzero) {
            this.pctzero = pctzero;
        }

        public String getRouteto() {
            return routeto;
        }

        public void setRouteto(String routeto) {
            this.routeto = routeto;
        }

        public float getPctrouted() {
            return pctrouted;
        }

        public void setPctrouted(float pctrouted) {
            this.pctrouted = pctrouted;
        }


    }
    private ArrayList<Subarea> subareaArrayList;
    public ArrayList<Subarea> getSubareaArrayList() {
        return subareaArrayList;
    }
    public void setSubareaArrayList(ArrayList<Subarea> subareaArrayList) {
        this.subareaArrayList = subareaArrayList;
    }



    //INFILTRATION
    /** This is Infiltration class.
     * @author dawei
     * @version v1.0
     * */

    public class Infiltration
    {
        private String subcatchment;
        private float maxrate;
        private float minrate;
        private float decay;
        private float drytime;
        private float maxinfil;

        //green ampt
        private float suction;
        private float conductivity;
        private float initialDeficit;
        //curve number
        private float curveNumber;


        public float getSuction() {
            return suction;
        }

        public void setSuction(float suction) {
            this.suction = suction;
        }

        public float getConductivity() {
            return conductivity;
        }

        public void setConductivity(float conductivity) {
            this.conductivity = conductivity;
        }

        public float getInitialDeficit() {
            return initialDeficit;
        }

        public void setInitialDeficit(float initialDeficit) {
            this.initialDeficit = initialDeficit;
        }

        public float getCurveNumber() {
            return curveNumber;
        }

        public void setCurveNumber(float curveNumber) {
            this.curveNumber = curveNumber;
        }




        public String getSubcatchment() {
            return subcatchment;
        }

        public void setSubcatchment(String subcatchment) {
            this.subcatchment = subcatchment;
        }

        public float getMaxrate() {
            return maxrate;
        }

        public void setMaxrate(float maxrate) {
            this.maxrate = maxrate;
        }

        public float getMinrate() {
            return minrate;
        }

        public void setMinrate(float minrate) {
            this.minrate = minrate;
        }

        public float getDecay() {
            return decay;
        }

        public void setDecay(float decay) {
            this.decay = decay;
        }

        public float getDrytime() {
            return drytime;
        }

        public void setDrytime(float drytime) {
            this.drytime = drytime;
        }

        public float getMaxinfil() {
            return maxinfil;
        }

        public void setMaxinfil(float maxinfil) {
            this.maxinfil = maxinfil;
        }


    }

    private ArrayList<Infiltration> infiltrationArrayList;
    public ArrayList<Infiltration> getInfiltrationArrayList() {
        return infiltrationArrayList;
    }
    public void setInfiltrationArrayList(ArrayList<Infiltration> infiltrationArrayList) {
        this.infiltrationArrayList = infiltrationArrayList;
    }

    /** This is Junction class.
     * @author dawei
     * @version v1.0
     * */
    //JUNCTIONS
    public class Junction
    {


        private ArrayList<String> description;
        private String junction;
        private float invert;
        private float maxdepth;
        private float initdepth;
        private float surdepth;
        private float aponded;
        public ArrayList<String> getDescription() {
            return description;
        }
        public void setDescription(ArrayList<String> description) {
            this.description = description;
        }

        public String getJunction() {
            return junction;
        }

        public void setJunction(String junction) {
            this.junction = junction;
        }

        public float getInvert() {
            return invert;
        }

        public void setInvert(float invert) {
            this.invert = invert;
        }

        public float getMaxdepth() {
            return maxdepth;
        }

        public void setMaxdepth(float maxdepth) {
            this.maxdepth = maxdepth;
        }

        public float getInitdepth() {
            return initdepth;
        }

        public void setInitdepth(float initdepth) {
            this.initdepth = initdepth;
        }

        public float getSurdepth() {
            return surdepth;
        }

        public void setSurdepth(float surdepth) {
            this.surdepth = surdepth;
        }

        public float getAponded() {
            return aponded;
        }

        public void setAponded(float aponded) {
            this.aponded = aponded;
        }


    }

    private ArrayList<Junction> junctionArrayList;
    public ArrayList<Junction> getJunctionArrayList() {
        return junctionArrayList;
    }
    public void setJunctionArrayList(ArrayList<Junction> junctionArrayList) {
        this.junctionArrayList = junctionArrayList;
    }


    //Outfalls
    public class Outfall
    {
        private ArrayList<String> description;
        private String outfall;
        private float invert;
        private String type;
        private String stagedata;
        private String gated;
        public ArrayList<String> getDescription() {
            return description;
        }
        public void setDescription(ArrayList<String> description) {
            this.description = description;
        }
        public String getOutfall() {
            return outfall;
        }

        public void setOutfall(String outfall) {
            this.outfall = outfall;
        }

        public float getInvert() {
            return invert;
        }

        public void setInvert(float invert) {
            this.invert = invert;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getStagedata() {
            return stagedata;
        }

        public void setStagedata(String stagedata) {
            this.stagedata = stagedata;
        }

        public String getGated() {
            return gated;
        }

        public void setGated(String gated) {
            this.gated = gated;
        }


    }

    private ArrayList<Outfall> outfallArrayList;
    public ArrayList<Outfall> getOutfallArrayList() {
        return outfallArrayList;
    }
    public void setOutfallArrayList(ArrayList<Outfall> outfallArrayList) {
        this.outfallArrayList = outfallArrayList;
    }




    //public struct ParamStruct
    //{
    //    public float coefficient;
    //    public float exponent;
    //    public float constant;
    //}
    //public struct SeepageStruct
    //{
    //    public float suctionhead;
    //    public float conductivity;
    //    public float initialdeficit;
    //}

    //STORAGE
    public class Storage
    {
        private ArrayList<String> description;
        private String storage;
        private float invert;
        private float maxdepth;
        private float initdepth;
        private String shape;
        private String curvename;
        private float[] param;
        private float ponded;
        private float fevap;
        private String seepage_exist;   //YES OR NO？
        private float[] seepage;

        public ArrayList<String> getDescription() {
            return description;
        }
        public void setDescription(ArrayList<String> description) {
            this.description = description;
        }
        public String getStorage() {
            return storage;
        }

        public void setStorage(String storage) {
            this.storage = storage;
        }

        public float getInvert() {
            return invert;
        }

        public void setInvert(float invert) {
            this.invert = invert;
        }

        public float getMaxdepth() {
            return maxdepth;
        }

        public void setMaxdepth(float maxdepth) {
            this.maxdepth = maxdepth;
        }

        public float getInitdepth() {
            return initdepth;
        }

        public void setInitdepth(float initdepth) {
            this.initdepth = initdepth;
        }

        public String getShape() {
            return shape;
        }

        public void setShape(String shape) {
            this.shape = shape;
        }

        public String getCurvename() {
            return curvename;
        }

        public void setCurvename(String curvename) {
            this.curvename = curvename;
        }

        public float[] getParam() {
            return param;
        }

        public void setParam(float[] param) {
            this.param = param;
        }

        public float getPonded() {
            return ponded;
        }

        public void setPonded(float ponded) {
            this.ponded = ponded;
        }

        public float getFevap() {
            return fevap;
        }

        public void setFevap(float fevap) {
            this.fevap = fevap;
        }

        public String getSeepage_exist() {
            return seepage_exist;
        }

        public void setSeepage_exist(String seepage_exist) {
            this.seepage_exist = seepage_exist;
        }

        public float[] getSeepage() {
            return seepage;
        }

        public void setSeepage(float[] seepage) {
            this.seepage = seepage;
        }



    }

    private ArrayList<Storage> storageArrayList;
    public ArrayList<Storage> getStorageArrayList() {
        return storageArrayList;
    }
    public void setStorageArrayList(ArrayList<Storage> storageArrayList) {
        this.storageArrayList = storageArrayList;
    }


    //CONDUITS
    public class Conduit
    {
        private ArrayList<String> description;
        private String conduit;
        private String fromnode;
        private String tonode;
        private float length;
        private float roughness;
        private float inoffset;
        private float outoffset;
        private float initflow;
        private float maxflow;

        public ArrayList<String> getDescription() {
            return description;
        }
        public void setDescription(ArrayList<String> description) {
            this.description = description;
        }
        public String getConduit() {
            return conduit;
        }

        public void setConduit(String conduit) {
            this.conduit = conduit;
        }

        public String getFromnode() {
            return fromnode;
        }

        public void setFromnode(String fromnode) {
            this.fromnode = fromnode;
        }

        public String getTonode() {
            return tonode;
        }

        public void setTonode(String tonode) {
            this.tonode = tonode;
        }

        public float getLength() {
            return length;
        }

        public void setLength(float length) {
            this.length = length;
        }

        public float getRoughness() {
            return roughness;
        }

        public void setRoughness(float roughness) {
            this.roughness = roughness;
        }

        public float getInoffset() {
            return inoffset;
        }

        public void setInoffset(float inoffset) {
            this.inoffset = inoffset;
        }

        public float getOutoffset() {
            return outoffset;
        }

        public void setOutoffset(float outoffset) {
            this.outoffset = outoffset;
        }

        public float getInitflow() {
            return initflow;
        }

        public void setInitflow(float initflow) {
            this.initflow = initflow;
        }

        public float getMaxflow() {
            return maxflow;
        }

        public void setMaxflow(float maxflow) {
            this.maxflow = maxflow;
        }
    }

    private ArrayList<Conduit> conduitArrayList;
    public ArrayList<Conduit> getConduitArrayList() {
        return conduitArrayList;
    }
    public void setConduitArrayList(ArrayList<Conduit> conduitArrayList) {
        this.conduitArrayList = conduitArrayList;
    }



    //XSECTIONS
    public class Xscetion
    {
        private String link;
        private String shape;
        private float geom1;
        private float geom2;
        private float geom3;
        private float geom4;
        private int barrels;
        private String culvertcode;
        public String getLink() {
            return link;
        }

        public void setLink(String link) {
            this.link = link;
        }

        public String getShape() {
            return shape;
        }

        public void setShape(String shape) {
            this.shape = shape;
        }

        public float getGeom1() {
            return geom1;
        }

        public void setGeom1(float geom1) {
            this.geom1 = geom1;
        }

        public float getGeom2() {
            return geom2;
        }

        public void setGeom2(float geom2) {
            this.geom2 = geom2;
        }

        public float getGeom3() {
            return geom3;
        }

        public void setGeom3(float geom3) {
            this.geom3 = geom3;
        }

        public float getGeom4() {
            return geom4;
        }

        public void setGeom4(float geom4) {
            this.geom4 = geom4;
        }

        public int getBarrels() {
            return barrels;
        }

        public void setBarrels(int barrels) {
            this.barrels = barrels;
        }

        public String getCulvertcode() {
            return culvertcode;
        }

        public void setCulvertcode(String culvertcode) {
            this.culvertcode = culvertcode;
        }


    }

    private ArrayList<Xscetion> xscetionArrayList;
    public ArrayList<Xscetion> getXscetionArrayList() {
        return xscetionArrayList;
    }
    public void setXscetionArrayList(ArrayList<Xscetion> xscetionArrayList) {
        this.xscetionArrayList = xscetionArrayList;
    }




    //LOSSES
    public class Losses
    {
        public String getCulvert() {
            return culvert;
        }

        public void setCulvert(String culvert) {
            this.culvert = culvert;
        }

        public float getEntry_loss_coeff() {
            return entry_loss_coeff;
        }

        public void setEntry_loss_coeff(float entry_loss_coeff) {
            this.entry_loss_coeff = entry_loss_coeff;
        }

        public float getExit_loss_coeff() {
            return exit_loss_coeff;
        }

        public void setExit_loss_coeff(float exit_loss_coeff) {
            this.exit_loss_coeff = exit_loss_coeff;
        }

        public float getAvg_loss_coeff() {
            return avg_loss_coeff;
        }

        public void setAvg_loss_coeff(float avg_loss_coeff) {
            this.avg_loss_coeff = avg_loss_coeff;
        }

        public String getFlap_gate() {
            return flap_gate;
        }

        public void setFlap_gate(String flap_gate) {
            this.flap_gate = flap_gate;
        }

        public float getSeepage_loss_rate() {
            return seepage_loss_rate;
        }

        public void setSeepage_loss_rate(float seepage_loss_rate) {
            this.seepage_loss_rate = seepage_loss_rate;
        }

        private String culvert;
        private float entry_loss_coeff;
        private float exit_loss_coeff;
        private float avg_loss_coeff;
        private String flap_gate;
        private float seepage_loss_rate;
    }

    private ArrayList<Losses> lossesArrayList;
    public ArrayList<Losses> getLossesArrayList() {
        return lossesArrayList;
    }
    public void setLossesArrayList(ArrayList<Losses> lossesArrayList) {
        this.lossesArrayList = lossesArrayList;
    }




    //CURVES
    public class CurveXY
    {
        private float x_value;
        private float y_value;
        public float getX_value() {
            return x_value;
        }

        public void setX_value(float x_value) {
            this.x_value = x_value;
        }

        public float getY_value() {
            return y_value;
        }

        public void setY_value(float y_value) {
            this.y_value = y_value;
        }


    }
    public class Curve
    {
        private String curve;
        private String type;
        private ArrayList<String> description;
        private ArrayList<CurveXY> xyArrayList;

        public String getCurve() {
            return curve;
        }
        public void setCurve(String curve) {
            this.curve = curve;
        }


        public String getType() {
            return type;
        }
        public void setType(String type) {
            this.type = type;
        }

        public ArrayList<String> getDescription() {
            return description;
        }
        public void setDescription(ArrayList<String> description) {
            this.description = description;
        }

        public ArrayList<CurveXY> getXyArrayList() {
            return xyArrayList;
        }
        public void setXyArrayList(ArrayList<CurveXY> xyArrayList) {
            this.xyArrayList = xyArrayList;
        }



    }

    private ArrayList<Curve> curveArrayList;
    public ArrayList<Curve> getCurveArrayList() {
        return curveArrayList;
    }
    public void setCurveArrayList(ArrayList<Curve> curveArrayList) {
        this.curveArrayList = curveArrayList;
    }



    //TIMESERIES
    public class DateTimeValue
    {
        private String date;
        private String time;
        private float value;
        public String getDate() {
            return date;
        }

        public void setDate(String date) {
            this.date = date;
        }

        public String getTime() {
            return time;
        }

        public void setTime(String time) {
            this.time = time;
        }

        public float getValue() {
            return value;
        }

        public void setValue(float value) {
            this.value = value;
        }


    }
    public class Timeseries
    {
        private String timeseries;
        private ArrayList<String> description;
        private ArrayList<DateTimeValue> dateTimeValueArrayList;
        public String getTimeseries() {
            return timeseries;
        }

        public void setTimeseries(String timeseries) {
            this.timeseries = timeseries;
        }

        public ArrayList<String> getDescription() {
            return description;
        }
        public void setDescription(ArrayList<String> description) {
            this.description = description;
        }

        public ArrayList<DateTimeValue> getDateTimeValueArrayList() {
            return dateTimeValueArrayList;
        }

        public void setDateTimeValueArrayList(ArrayList<DateTimeValue> dateTimeValueArrayList) {
            this.dateTimeValueArrayList = dateTimeValueArrayList;
        }



    }
    private ArrayList<Timeseries> timeseriesArrayList;
    public ArrayList<Timeseries> getTimeseriesArrayList() {
        return timeseriesArrayList;
    }
    public void setTimeseriesArrayList(ArrayList<Timeseries> timeseriesArrayList) {
        this.timeseriesArrayList = timeseriesArrayList;
    }





    //REPORT
    public class Report
    {
        private String input;
        private String controls;
        private String[] subcatchments;
        private String[] nodes;
        private String[] links;
        public String getInput() {
            return input;
        }

        public void setInput(String input) {
            this.input = input;
        }

        public String getControls() {
            return controls;
        }

        public void setControls(String controls) {
            this.controls = controls;
        }

        public String[] getSubcatchments() {
            return subcatchments;
        }

        public void setSubcatchments(String[] subcatchments) {
            this.subcatchments = subcatchments;
        }

        public String[] getNodes() {
            return nodes;
        }

        public void setNodes(String[] nodes) {
            this.nodes = nodes;
        }

        public String[] getLinks() {
            return links;
        }

        public void setLinks(String[] links) {
            this.links = links;
        }


    }
    private Report report;
    public Report getReport() {
        return report;
    }
    public void setReport(Report report) {
        this.report = report;
    }


    //TAGS
    public class Tag
    {
        public String getCategory() {
            return category;
        }

        public void setCategory(String category) {
            this.category = category;
        }

        public String getTagId() {
            return tagId;
        }

        public void setTagId(String tagId) {
            this.tagId = tagId;
        }

        public String getContent() {
            return content;
        }

        public void setContent(String content) {
            this.content = content;
        }

        private String category;
        private String tagId;
        private String content;
    }
    private ArrayList<Tag> tagArrayList;
    public ArrayList<Tag> getTagArrayList() {
        return tagArrayList;
    }
    public void setTagArrayList(ArrayList<Tag> tagArrayList) {
        this.tagArrayList = tagArrayList;
    }

    //MAP
    public class Map
    {
        private float[] dimensions;
        private String units;
        public float[] getDimensions() {
            return dimensions;
        }

        public void setDimensions(float[] dimensions) {
            this.dimensions = dimensions;
        }

        public String getUnits() {
            return units;
        }

        public void setUnits(String units) {
            this.units = units;
        }

    }
    private Map map;
    public Map getMap() {
        return map;
    }
    public void setMap(Map map) {
        this.map = map;
    }

    //COORDINATES
    public class Coordinate
    {
        private String node;
        private float x_coord;
        private float y_coord;


        public String getNode() {
            return node;
        }

        public void setNode(String node) {
            this.node = node;
        }

        public float getX_coord() {
            return x_coord;
        }

        public void setX_coord(float x_coord) {
            this.x_coord = x_coord;
        }

        public float getY_coord() {
            return y_coord;
        }

        public void setY_coord(float y_coord) {
            this.y_coord = y_coord;
        }


    }

    public ArrayList<Coordinate> getCoordinateArrayList() {
        return coordinateArrayList;
    }
    public void setCoordinateArrayList(ArrayList<Coordinate> coordinateArrayList) {
        this.coordinateArrayList = coordinateArrayList;
    }
    private ArrayList<Coordinate> coordinateArrayList;

    //VERTICES
    public class Vertice
    {
        private String link;
        private float x_coord;
        private float y_coord;
        public String getLink() {
            return link;
        }

        public void setLink(String link) {
            this.link = link;
        }

        public float getX_coord() {
            return x_coord;
        }

        public void setX_coord(float x_coord) {
            this.x_coord = x_coord;
        }

        public float getY_coord() {
            return y_coord;
        }

        public void setY_coord(float y_coord) {
            this.y_coord = y_coord;
        }
    }

    private ArrayList<Vertice> verticeArrayList;
    public ArrayList<Vertice> getVerticeArrayList() {
        return verticeArrayList;
    }
    public void setVerticeArrayList(ArrayList<Vertice> verticeArrayList) {
        this.verticeArrayList = verticeArrayList;
    }



    //POLYGONS
    public class Polygon
    {
        private String polygon;
        private float x_coord;
        private float y_coord;
        public String getPolygon() {
            return polygon;
        }

        public void setPolygon(String polygon) {
            this.polygon = polygon;
        }

        public float getX_coord() {
            return x_coord;
        }

        public void setX_coord(float x_coord) {
            this.x_coord = x_coord;
        }

        public float getY_coord() {
            return y_coord;
        }

        public void setY_coord(float y_coord) {
            this.y_coord = y_coord;
        }
    }
    private ArrayList<Polygon> polygonArrayList;
    public ArrayList<Polygon> getPolygonArrayList() {
        return polygonArrayList;
    }
    public void setPolygonArrayList(ArrayList<Polygon> polygonArrayList) {
        this.polygonArrayList = polygonArrayList;
    }
    //SYMBOLS
    public class Symbol
    {
        private String gage;
        private float x_coord;
        private float y_coord;
        public String getGage() {
            return gage;
        }
        public void setGage(String gage) {
            this.gage = gage;
        }
        public float getX_coord() {
            return x_coord;
        }
        public void setX_coord(float x_coord) {
            this.x_coord = x_coord;
        }
        public float getY_coord() {
            return y_coord;
        }
        public void setY_coord(float y_coord) {
            this.y_coord = y_coord;
        }

    }
    private ArrayList<Symbol> symbolArrayList;
    public ArrayList<Symbol> getSymbolArrayList() {
        return symbolArrayList;
    }
    public void setSymbolArrayList(ArrayList<Symbol> symbolArrayList) {
        this.symbolArrayList = symbolArrayList;
    }
}
